package com.vichat.res.service;

import com.vichat.common.vo.PageFilter;
import com.vichat.res.entity.*;
import com.vichat.res.vo.*;

import java.math.BigInteger;
import java.util.List;

public interface IResService {

    /**
     * 保存频道资源
     *
     * @param roomResourceVO
     * @return
     */
    public RoomResourceVO saveRoomResource(RoomResourceVO roomResourceVO);


    /**
     * 获取频道资源详情
     *
     * @param uid
     * @param rid
     * @param startTime
     * @param endTime
     * @param resType
     * @param page
     * @param rows
     * @return
     * @throws Exception
     */
    public List<FileResourceRoomVO> getRoomResourceDetail(long uid, long rid, String startTime, String endTime, String resType, int page, int rows) throws Exception;

    /**
     * 获取频道资源详情总数
     *
     * @param uid
     * @param rid
     * @param startTime
     * @param endTime
     * @param resType
     * @return
     * @throws Exception
     */
    public Long getRoomResourceDetailCount(long uid, long rid, String startTime, String endTime, String resType) throws Exception;

    /**
     * 获取频道资源
     *
     * @param uid
     * @param rid
     * @param startTime
     * @param endTime
     * @param address
     * @param page
     * @param rows
     * @return
     * @throws Exception
     */
    public List<RoomResource> getRoomResources(long uid, long rid, String startTime, String endTime, String address, int page, int rows) throws Exception;

//    /**
//     * 查询资源使用情况
//     *
//     * @param partyId
//     */
//    public List<ResouceUsageVO> getResouceUsageRpt(long partyId) ;

    /**
     * 查询资源使用明细
     *
     * @param partyId
     * @param relatType
     * @return
     */
    public List<RoomResource> getResoucesByType(long partyId, long relatType);

    /**
     * 查询资源使用总量
     *
     * @param partyId
     * @return
     */
    public long getResouceUsageSizeSum(long partyId);

    public List<VichatRoomRecResVO> getVichatRoomRecResources(long uid, long rid, String orgCode, String startTime, String endTime, String resType, long partyId,int page, int rows) throws Exception;

    public void addRoomResource(RecFileVO recFile) throws Exception;

    /**
     * 保存修改资源信息
     *
     * @param file
     * @throws Exception
     */
    public ResFile saveOrUpdResFile(ResFile file) throws Exception;

    /**
     * 获取资源配置
     *
     * @param code
     * @return
     * @throws Exception
     */
    public ResConfig getResConfig(String code) throws Exception;

    public void processRoomMicRecord(RoomMicRecordDLog roomMicRecordDLog);

    public List<RoomMicRecordDLog> queryRoomMicRecord(RoomMicRecordDLog queryBean, PageFilter pageFilter);

    public BigInteger countRoomMicRecord(RoomMicRecordDLog queryBean);


    public ResEvent saveResEvent(ResFileRequsetVO paramsVO,List<ResFileVO> responseRes);
    public void saveResByType(ResFileRequsetVO paramsVO,List<ResFileVO> responseRes);
    public ResEvent getResEventByEvtId(long evtId);
    public void delResEvent(long eventId);
    public List<ResEvent> queryResEvent (ResEvent queryBean, PageFilter pageFilter);
    public long countResEvent(ResEvent queryBean);
    public List<ResEvent> queryResEventRecording (ResEvent queryBean, PageFilter pageFilter);
    public BigInteger countResEventRecording(ResEvent queryBean);

    public List<ResFile> getFileListByEventId(long evtId);
    public List<ResFile> getFileListByType(long objId,long objType);


}
